Hook是React在16.8中增加的新功能,和過往React Component架構相比,可以幫助使用者不必再用class的方式包裝,來完成React state 與生命週期時的各種功能行為。
Hook的優點
- 不改變Component的前提下讓程式重用stateful(有狀態)的邏輯
過去為了重用某一功能行為到另一個Component上,可以使用render props以及higher-order components等方式去達到此目的,但要使用這些方法的話必須要重新包裝Component,且長久下來若多次使用這些方法去調整Component的話,最終會讓程式難以理解、維護。
- 減少學習成本
Hook幫助開發人員能用function的方式去理解、開發React,不需要花額外時間去學習Class。
- 無轉換成本
就算你是一個習慣用Class的方式去開發的工程師,導入Hook也沒有必要改寫既有的程式碼,且可以使用原有的props、state、context、refs 以及 lifecycle等方式去開發。